﻿// owner 蒋家伟

#include "UIBaseUtils.h"

using namespace jsdk;

namespace
{
    constexpr uint32_t kByte = 1024;
    constexpr uint32_t mByte = 1024 * kByte;
    constexpr uint32_t gByteSize = 1024 * mByte;
}

QString UIBaseUtils::getSizeStr(uint64_t sizeBytes)
{
    if (sizeBytes / ::gByteSize)
    {
        // 以g为单位
        double value = static_cast<double>(static_cast<long double>(sizeBytes) / ::gByteSize);
        return QString(u8"%1GB").arg(value, 0, 'f', 2);
    }
    else if (sizeBytes / mByte)
    {
        // 以M为单位
        double value = static_cast<double>(static_cast<long double>(sizeBytes) / ::mByte);
        return QString(u8"%1MB").arg(value, 0, 'f', 2);
    }
    else if (sizeBytes / kByte)
    {
        // 以k为单位
        double value = static_cast<double>(static_cast<long double>(sizeBytes) / ::kByte);
        return QString(u8"%1KB").arg(value, 0, 'f', 2);
    }
    else
    {
        // 以b为单位
        return QString::number(sizeBytes) + u8"B";
    }
    return{};
}
